Your goal is to generate plan in domain specific language (DSL) for biology protocols.
The DSL specifications related to the operations involved in the experiment are provided. The DSL specification of each operation consists of multiple patterns, each pattern is an operation execution paradigm.
Output each operation of the plan in the form of a DSL program. Each DSL program is a dictionary. The final plan consists of the program of each step and is returned in a json block, without any annotation.

Here is an example of how to generate plan in DSL for a biology protocol.

EXAMPLE:

DNA extraction from avian faeces stored in ethanol

Here are some extra details about the protocol:

This molecular biology protocol aims to extract DNA from blue tit (Cyanistes caeruleus) faeces stored in ethanol using the Qiagen QIAamp DNA Stool Kit with custom modifications. These modifications include homogenization in lysis buffer, increased lysis times with additional Proteinase K, and larger buffer volumes to improve DNA yields.

part of example plan in DSL:
```json
[
    {
        "Operation": "Pour",
        "Precond": {
            "SlotArgNum": 1,
            "SlotArg": ["1X_TAE_Buffer"]
        },
        "Execution": {
            "DeviceType": "Erlenmeyer Flask",
            "Config": {
                "Volume": "100mL"
            }
        },
        "Postcond": {
            "EmitArgNum": 1,
            "EmitArg": ["TAE_Buffer-1"]
        }
    },
    {
        "Operation": "Weigh",
        "Precond": {
            "SlotArgNum": 1,
            "SlotArg": ["Agarose"]
        },
        "Execution": {
            "DeviceType": "Weighing Scale",
            "Config": {
                "Quantity": "1g"
            }
        },
        "Postcond": {
            "EmitArgNum": 1,
            "EmitArg": ["Agarose-1"]
        }
    },
    {
        "Operation": "Add",
        "Precond": {
            "SlotArgNum": 2,
            "SlotArg": ["Agarose-1", "TAE_Buffer-1"]
        },
        "Execution": {
            "DeviceType": "Erlenmeyer Flask",
            "Config": {}
        },
        "Postcond": {
            "EmitArgNum": 1,
            "EmitArg": ["Agarose_TAE_Buffer-1"]
        }
    },
    ...
    {
        "Operation": "Dispose",
        "Precond": {
            "SlotArgNum": 1,
            "SlotArg": ["Agarose_Gel-5"]
        },
        "Execution": {
            "DeviceType": "Ethidium Bromide Waste Bin",
            "Config": {}
        },
        "Postcond": {
            "EmitArgNum": 1,
            "EmitArg": ["Disposal_Complete"]
        }
    }
]
```

[Requirements]
1. Design the experiment with finer granularity, incorporating more steps to complete the experiment in a more rigorous, complex, and comprehensive manner.
2. There are some missing parameters in the DSL specification. You should generate each step of the DSL program as detailed as possible based on your understanding of the protocol plan.
3. In Precond and Postcond, use formal name of the component to represent the SlotArg and EmitArg of each step. The component name should clearly describe the content of the component.

YOUR TASK:
Generate plan in DSL for a protocol for {title}.

Here are some extra details about the protocol:

{details}

You can choose to instantiate the following DSL specification to construct the DSL program:

{DSL}

Your plan in DSL program: